package dao;

import dal.Conexion;
import dto.Transportista;
import java.util.Vector;
import java.sql.ResultSet;

public class TransportistaDaoPostgreSQL extends TransportistaDao {

	@Override
	public void update() throws Exception {
		Conexion objConexion = Conexion.getOrCreate();

		if(objDto.getIcitransportista() > 0){
			StringBuffer query = new StringBuffer("UPDATE transportista SET ");
			query.append("stelefono = '" + objDto.getStelefono() + "',");
			query.append("snombre = '" + objDto.getSnombre() + "',");
			query.append("sdireccion = '" + objDto.getSdireccion() + "' ");
			query.append("WHERE icitransportista = '" + objDto.getIcitransportista() + "'");
			int upd = objConexion.ejecutarSimple(query.toString());
			if(upd == 0)
				throw new Exception("El registro no pudo ser actualizado");
		}

		if(objDto.getIcitransportista() == 0){
			StringBuffer query = new StringBuffer("INSERT INTO transportista VALUES (");
			query.append("'" + objDto.getIcitransportista() + "'," );
			query.append("'" + objDto.getStelefono() + "'," );
			query.append("'" + objDto.getSnombre() + "'," );
			query.append("'" + objDto.getSdireccion() + "' " );
			query.append(")");
			int id = objConexion.ejecutarInsert(query.toString());
			if(id == 0)
				throw new Exception("El registro no pudo ser insertado");
			else
				objDto.setIcitransportista(id);
			objConexion.desconectar();
		}
	}
	@Override
	public void delete(){
		Conexion objConexion = Conexion.getOrCreate();
		StringBuffer query = new StringBuffer("DELETE FROM transportista ");
		query.append("WHERE icitransportista = " + objDto.getIcitransportista());
		objConexion.ejecutarSimple(query.toString());
		objConexion.desconectar();
	}

	@Override
	public Transportista select(int id){
		try{
			Conexion objConexion = Conexion.getOrCreate();
			String query = "SELECT * FROM transportista WHERE icitransportista = " + id;
			ResultSet objResultSet = objConexion.ejecutar(query);
			if(objResultSet.next()){
				Transportista obj = new Transportista();
				int _icitransportista = objResultSet.getInt("icitransportista");
				obj.setIcitransportista(_icitransportista);
				
				String _stelefono = objResultSet.getString("stelefono");
				obj.setStelefono(_stelefono);
				
				String _snombre = objResultSet.getString("snombre");
				obj.setSnombre(_snombre);
				
				String _sdireccion = objResultSet.getString("sdireccion");
				obj.setSdireccion(_sdireccion);
				
				return obj;
			}
		}catch(Exception ex){
			;
		}
		return null;
	}

	@Override
	public Vector<Transportista> selectTodos(){
		Vector<Transportista>  registros = new Vector<Transportista>();
		try{
			Conexion objConexion = Conexion.getOrCreate();
			String query = "SELECT * FROM transportista ";
			ResultSet objResultSet = objConexion.ejecutar(query);
			while(objResultSet.next()){
				Transportista obj = new Transportista();
				int _icitransportista = objResultSet.getInt("icitransportista");
				obj.setIcitransportista(_icitransportista);
				
				String _stelefono = objResultSet.getString("stelefono");
				obj.setStelefono(_stelefono);
				
				String _snombre = objResultSet.getString("snombre");
				obj.setSnombre(_snombre);
				
				String _sdireccion = objResultSet.getString("sdireccion");
				obj.setSdireccion(_sdireccion);
				
				registros.addElement(obj);
			}
		}catch(Exception ex){
			;
		}
		return registros;
	}

}

